package com.itheima.edu.info.manager.service;

import com.itheima.edu.info.manager.dao.TeacherDao;
import com.itheima.edu.info.manager.domain.Teacher;

/*
    业务员类:进行业务逻辑的处理
        1.这里的所有方法【功能】都是给客服用
        2.如果某些业务涉及到要对数据仓库的数据进行访问的话,那么需要在业务员类中操作库管对象
        3.该类的核心作用是用于处理业务逻辑,例如:判断录入的id是否存在
 */
public class TeacherService {
    //1.创建StudentDao(库管)类:StudentDao的对象,调用库管的添加老师方法
    private TeacherDao teacherDao = new TeacherDao();

    //添加老师
    public boolean addTeacher(Teacher teach) {
        //2.将库管添加老师后的结果返回给调用者:客服
        return teacherDao.addTeacher(teach);
    }

    //判断教师编号在系统【数据仓库】中是否存在
    public boolean isExsists(String tid) {
        //1.让库管把仓库中所有数据都拿过来
        Teacher[] teachers = teacherDao.findAllTeacher();
        //2.定义一个标记:boolean flag = false,表示假设输入的tid在数据仓库中不存在
        boolean flag = false;
        //3.遍历teachers,拿到每一个老师对象,取每个老师对象的tid和传进来的tid进行比较
        for (int i = 0; i < teachers.length; i++) {
            Teacher teach = teachers[i];
            if (teach != null && teach.getId().equals(tid)) {
                //一致说明存在
                flag = true;
                break;
            }
        }
        return flag;
    }

    public Teacher[] findAllTeacher() {
        //1.调用库管的查询所有老师信息的方法,拿到所有老师对象
        Teacher[] allTeacher = teacherDao.findAllTeacher();// allTeacher = {null,null,null,null,null}
        /*
            2.对库管查到的老师数组进行判断
                2.1如果库管给的数组里装的全是null,我们就直接返回一个null给客服
         */
        //先定义一个标记:boolean flag = false,默认值表示先假设数组里全是null
        boolean flag = false;
        //遍历数组allStudent,只要有一个索引位置不为null,就修改标记为true
        for (int i = 0; i < allTeacher.length; i++) {
            Teacher teacher = allTeacher[i];
            if (teacher != null) {
                flag = true;
                break;
            }
        }
        //根据flag的值来决定当前方法的返回值
        if (flag) {
            //说明allStudent中有学生对象,这时返回allStudent对象即可
            return allTeacher;
        } else {
            //flag为false,则表示allStudent中全是null,一个学生对象都没有,这时直接返回null
            return null;
        }
    }
    //删除老师
    public void deleteTeacherByTid(String delTid) {
        teacherDao.deleteTeacherByTid(delTid);
    }
    //修改老师
    public void updateTeacherByTid(String upTid, Teacher newteacher) {
        teacherDao.updateTeacherByTid(upTid,newteacher);
    }
}
